package com.example.swordjava;


import android.os.Build;

import androidx.annotation.RequiresApi;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.PriorityQueue;

public class Test42 {

    public static void main(String[] args) {

        int[][] a = {{1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12},
                {13, 14, 15, 16}};

        System.out.println(a[0][1]);

    }

    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;

        }
    }

    /**
     * 连续子数组的最大和
     * 输入一个长度为n的整型数组array，数组中的一个或连续多个整数组成一个子数组，子数组最小长度为1。求所有子数组的和的最大值。
     */
    public int FindGreatestSumOfSubArray(int[] array) {
        // write code here
        int res = array[0];
        int max = array[0];

        // 1 2 -2 3
        for (int i = 1; i < array.length; i++) {
            max = Math.max(array[i], max + array[i]);// 优化动态规划，确定max的最大值 /只要max不是负数 就一直累加为负后重新累加
            res = Math.max(res, max);//记录在动态规划过程出现的最大累加值
        }
        return res;
    }

}














